/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"1B098E54-746A-4DAB-84EB-4E5CA5777388"}
 */
var fFormLlama = 'recepciones_carga_cab';

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"F70A21EE-7BB1-4E33-A7AE-3550CD423840"}
 */
function onDataChangeProducto(oldValue, newValue, event) {
	
	cod_producto		= recep_detalle_to_productos.cod_producto
	precio_actual 		= recep_detalle_to_productos.precio_unitario
	
	if (recep_detalle_to_oc_detalle != null)
	{
		precio_unitario 	= recep_detalle_to_oc_detalle.precio_unitario_real
		precio_sistema_oc 	= recep_detalle_to_oc_detalle.precio_unitario_sistema	
	}
	else
	{
		precio_unitario 	= precio_actual
		precio_sistema_oc 	= precio_actual
	}
	
	var $rcd = foundset.getRecord(foundset.getSelectedIndex())
	defineTotales($rcd)
	
	if (cantidad != null)
	{
		if (recep_detalle_to_oc_detalle.cantidad_pendiente_entrega < cantidad_alter)
		{
			globals.DIALOGS.showWarningDialog('Aviso','La cantidad supera a la cantidad pendiente de la orden de compra','OK')
		}
	}	
	
	elements.cantidad.requestFocus()
		
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"CCFCF6CF-40A6-46D7-BC42-C06A4832D400"}
 */
function onDataChangeCantidad(oldValue, newValue, event) {
	var $rcd = foundset.getRecord(foundset.getSelectedIndex())
	
	if ($rcd.pie_cuadrado > 0)
		forms[fFormLlama].fTotP2 -= $rcd.pie_cuadrado
	
	defineTotales($rcd)
	
	if (cantidad != null && recep_detalle_to_oc_detalle != null)
	{
		if (recep_detalle_to_oc_detalle.cantidad_pendiente_entrega < cantidad_alter)
		{
			globals.DIALOGS.showWarningDialog('Aviso','La cantidad supera a la cantidad pendiente de la orden de compra','OK')
		}
	}
	
	return true
}

/**
 * @properties={typeid:24,uuid:"BDBA6DF9-EB4C-441D-8365-EDDA3ADA04BC"}
 */
function defineTotales($rcd)
{
	calculaTotalRenglon($rcd)
	
	if ($rcd.pie_cuadrado != null)
		forms[fFormLlama].fTotP2 += $rcd.pie_cuadrado
	
	if ($rcd.recep_kilogramos > 0)
		forms[fFormLlama].fTotKg -= $rcd.recep_kilogramos
	
	$rcd.recep_kilogramos 	= $rcd.recep_detalle_to_productos.kilogramos * $rcd.cantidad
	forms[fFormLlama].fTotKg += $rcd.recep_kilogramos	
}

/**
 * Handle record selected.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"DC447670-59B6-4FFF-AC97-397750D162EB"}
 */
function onRecordSelection(event) {
	elements.cod_producto.requestFocus()
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"023DB880-5C29-4FFF-8C88-9261616650C0"}
 */
function onDataChangeCajas(oldValue, newValue, event) {

	var $cant 		= recep_detalle_to_precios_proveedor.cantidad_x_caja
	cantidad 		= $cant * newValue
	return true
}

/**
 * @properties={typeid:24,uuid:"2533D503-4746-4899-A949-882811CF56DA"}
 */
function calculaTotalRenglon($rcd)
{
	var $cab = forms.recepciones_carga_cab.foundset.getRecord(forms.recepciones_carga_cab.foundset.getSelectedIndex())

	if ($rcd.agrupamiento != null)
	{
		var oc = tieneOc($rcd.agrupamiento,$cab.oc_cabecera_id)
		
		if (oc != -1)
		{
			var oc_dtl_id 	= oc[0]
			var precio 		= oc[1]
			
			$rcd.oc_detalle_id 		= oc_dtl_id
			$rcd.total_renglon 		= $rcd.cantidad_alter * precio
			$rcd.precio_unitario 	= precio
			$rcd.precio_sistema_oc 	= $rcd.recep_detalle_to_oc_detalle.precio_unitario_sistema
		}
		else
		{
			$rcd.oc_detalle_id 		= null
			$rcd.total_renglon 		= $rcd.cantidad_alter * $rcd.recep_detalle_to_productos.productos_to_agrupamiento.costo_en_pesos
			$rcd.precio_unitario	= $rcd.recep_detalle_to_productos.productos_to_agrupamiento.costo_en_pesos
			$rcd.precio_sistema_oc	= null
		}
	}
	else
	{
		var oc = tieneOc($rcd.cod_producto,$cab.oc_cabecera_id)
		
		if (oc != -1)
		{
			var oc_dtl_id 	= oc[0]
			var precio 		= oc[1]
			
			$rcd.oc_detalle_id 	= oc_dtl_id
			$rcd.total_renglon 	= $rcd.cantidad_alter * precio
			precio_unitario 	= precio
			precio_sistema_oc 	= $rcd.recep_detalle_to_oc_detalle.precio_unitario_sistema
		}
		else
		{
			$rcd.oc_detalle_id 		= null
			$rcd.total_renglon 		= $rcd.cantidad_alter * $rcd.recep_detalle_to_productos.costo_en_pesos
			$rcd.precio_unitario	= $rcd.recep_detalle_to_productos.costo_en_pesos
			$rcd.precio_sistema_oc	= null
		}
	}
}

/**
 * @return {Object}
 * 
 * @properties={typeid:24,uuid:"70726DD6-2764-436B-8536-5B05782DD9EA"}
 */
function tieneOc(producto,cabecera)
{
	var query 	= 'select oc_detalle_id, precio_unitario from oc_detalle '+
					'where oc_cabecera_id = ? and cod_producto = ?'
	var args 	= [cabecera,producto]
	var ds 		= databaseManager.getDataSetByQuery('infocom',query,args,-1)
	
	if (ds.getMaxRowIndex() > 0)
	{
		return ds.getRowAsArray(1)
	}
	return -1
}
